package com.heima.user.controller;

import com.heima.common.constants.UserAuthConstant;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.user.dto.AuthDto;
import com.heima.user.service.ApUserRealnameService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;

/**
 * APP实名认证信息表(ApUserRealname)表控制层
 *
 * @author makejava
 * @since 2022-04-28 19:49:09
 */
@RestController
@RequestMapping(path = "/api/v1/auth")
public class ApUserRealnameController {
    /**
     * 服务对象
     */
    @Resource
    private ApUserRealnameService apUserRealnameService;


    /**
     * 提交用户实名认证信息
     * 参数名=参数值&参数名=参数值&参数名=参数值
     *
     * @param font_image 身份证正面照
     * @param back_image 身份证背面照
     * @param hold_image 身份证手持照
     * @param live_image 身份证活体照
     * @param name       用户名
     * @param idno       用户身份证编号
     * @return
     */
    @PostMapping(path = "/submit")
    public ResponseResult submit(MultipartFile font_image,
                                 MultipartFile back_image,
                                 MultipartFile hold_image,
                                 MultipartFile live_image,
                                 String name,
                                 String idno) {
        return apUserRealnameService.submit(font_image, back_image, hold_image, live_image, name, idno);

    }


    /**
     * 用户实名认证审核查询列表
     *
     * @param dto
     * @return
     */
    @PostMapping(path = "/list")
    public ResponseResult list(@RequestBody AuthDto dto) {
        return apUserRealnameService.list(dto);
    }


    /**
     * 实名认证审核通过
     *
     * @param dto
     * @return
     */
    @PostMapping(path = "/authPass")
    public ResponseResult authPass(@RequestBody AuthDto dto) {
        //直接在代码中写一些固定的值 ，叫做魔法值
        return apUserRealnameService.auth(dto.getId(), UserAuthConstant.AUTH_PASS,dto.getMsg());
    }


    /**
     * 实名认证审核失败
     *
     * @param dto
     * @return
     */
    @PostMapping(path = "/authFail")
    public ResponseResult authFail(@RequestBody AuthDto dto) {
        //直接在代码中写一些固定的值 ，叫做魔法值
        return apUserRealnameService.auth(dto.getId(), UserAuthConstant.AUTH_FAIL,dto.getMsg());
    }

}

